After 20176d03, the Wayland backend only synchronizes with the
compositor after a geometry was set, and it was different from
the current geometry.
That commit was mistakenly comparing the geometry before chaining
up, which would yield a false negative on the case where the
client didn't call set_geometry() before commit().
Fix that by caching the old geometry locally, chain up (and thus
apply the new geometry rectangle), then comparing the old and
current geometry rectangles.
Carlos Garnacho [Sun, 15 Apr 2018 14:26:32 +0000 (16:26 +0200)]
frames: Handle touch events
This is just done on wayland as it'll break horribly on X11, we let
this happen through pointer emulated events in XISelectEvents evmask
instead.
Some things had to be made slightly more generic to accomodate touch
events. The MetaFrames shall lock onto a single touch at a time, we
don't allow crazy stuff like multi-window drag nor multi-edge resizes.
Mark CAPS lock as a modifier (as it should) so that when using XKB
options to change the default behaviour of CAPS lock, the new assigned
key can by used as a sticky key as well.
Olivier Fourdan [Fri, 23 Mar 2018 12:05:12 +0000 (13:05 +0100)]
wayland: Use cursor position in logical monitor
When using two monitors size by side with different scales, once the
cursor moves from one output to another one, its size changes based on
the scale of the given output.
Changing the size of the cursor can cause the cursor area to change
output again if the hotspot is not exactly at the top left corner of the
area, causing the texture of the cursor to change, which will trigger
another output change, so on and so forth causing continuous surface
enter/leave event which flood the clients and eventually kill them.
Change the logic to use only the actual cursor position to determine if
its on the given logical monitor, so that it remains immune to scale
changes induced by output scale differences.
Simon McVittie [Sun, 8 Jul 2018 10:32:56 +0000 (11:32 +0100)]
mutter (3.28.2-3) unstable; urgency=medium
* Team upload
* d/p/backends-Move-MetaOutput-crtc-field-into-private-struct.patch,
d/p/backends-Add-logical-monitor-monitor-output-crtc-ref-chai.patch:
Mark as applied upstream
* d/p/backends-Move-MetaOutput-crtc-field-into-private-struct.patch:
Update to the version that was applied upstream
* d/p/frames-Handle-touch-events.patch,
d/p/frames-Make-1st-button-motion-handlers-take-generic-event.patch,
d/p/frames-Allow-for-unknown-mouse-buttons.patch:
Reinstate patches dropped in previous upload, along with the
upstream fix for #899181
* d/p/wayland-Compare-geometries-after-chaining-up.patch,
d/p/window-actor-add-new-signal-effects-completed.patch,
d/p/wayland-update-enter-leave-output-after-effects.patch,
d/p/frames-Allow-for-unknown-mouse-buttons.patch,
d/p/wayland-Don-t-reset-input-focus-on-text-commit.patch,
d/p/clutter-seat-evdev-Add-function-to-get-device-by-id.patch,
d/p/clutter-device-evdev-Get-devices-from-main-seat-if-no-rea.patch,
d/p/device-manager-evdev-Set-and-unset-the-stage-for-the-main.patch,
d/p/device-manager-evdev-Free-the-main-seat-on-finalize.patch,
d/p/device-manager-evdev-Add-main-seat-to-seats-by-default.patch,
d/p/renderer-native-Don-t-crash-if-the-FB-surface-can-t-be-lo.patch:
Update to upstream gnome-3-28 branch
* Add a symbols file for libmutter-2-0
* d/copyright: Copy many licenses and copyright holders into this file,
multiplying its length by 5 (Closes: #891156)